package com.my.study.structures.hashtab;

/**
 * @author Carlos
 * @version 1.0
 * @Description 链表，存放{@link Emp}对象
 * @date 2021/8/2 23:23
 **/
public class EmpLinkedList {

    /**
     * 头指针，指向第一个Emp对象，默认为null
     */
    private Emp head;

    /**
     * 添加雇员
     *
     * <p>
     * 1、添加雇员时，id自增的
     * 2、添加到链表最后一个
     * </p>
     *
     * @param emp 待添加的雇员
     */
    public void add(Emp emp) {
        if (null == head) {
            head = emp;
            return;
        }

        Emp curEmp = head;
        // 找到最后一个Emp
        while (curEmp.getNext() != null) {
            curEmp = curEmp.getNext();
        }
        curEmp.setNext(emp);
    }


    /**
     * 遍历链表
     */
    public void list(int no) {
        if (null == head) {
            System.out.println("第" + (no + 1) + "条链表为空");
            return;
        }
        System.out.printf("第" + (no + 1) + "条链表信息：");
        Emp curEmp = head;
        while (curEmp.getNext() != null) {
            System.out.printf("=> id = %d, name = %s \t", curEmp.getId(), curEmp.getName());
            curEmp = curEmp.getNext();
        }
        System.out.println();
    }
}
